Tables are used extensively in today's computing environment. The uses of tables include organizing topics under categories, creating financial reports, organizing employee records, as well as many other ways where it is desirable to manage or represent related data. Because of the many uses of tables, word processing, spreadsheet, database, and desktop publishing applications have all provided functional support for the use of tables.
As the use of tables proliferate, the demands for more sophisticated table support in the applications while making them easier to use has increased. Examples of these increased demands include simpler table creation and manipulation, the display of borders around the table and the individual cells within the table and providing calculation functions on the cells within the table. These increased demands are present for tables wherever they are found: in word processing, spreadsheet, database, and desktop publishing applications. Effective presentation of data is the goal.
One demand that has risen is to create a divided cell in a table. For example, diagonally divided cells are most commonly used in a table to block off specific cells of the table signifying that no entries may exist for that cell. However, other needs for divided cells also exist. These needs include incorporating objects in a divided cell. Objects comprise linguistic and other communicative symbols, including alphanumeric characters, graphic symbols, or any representation in a table cell. FIGS. 1a and 1b illustrate two examples of other uses of a divided cell. FIG. 1a illustrates a calendar wherein the divided cell 3, in this case a diagonally divided cell, is used to represent two days of the month within a single cell. FIG. 1b illustrates a table with row and column headings wherein the divided cell 7, also a diagonally divided cell, depicts category headings for the table's rows and columns. Note that in both of these examples, text objects are displayed on both sides of the diagonal. Having text objects on both sides creates a need such that the user can enter text on both sides as well as edit the existing text on both sides of the diagonal.
To address this need, one existing implementation includes drawing a line to divide the cell diagonally in either direction (i.e., from the Northwest corner of the cell to the Southeast, or from the Northeast corner to the Southwest) as well as drawing an “X” over the cell. However, in this implementation, the drawing of the diagonal line renders the cell uneditable. This drawback also creates an inconsistency from a user interface standpoint. The cell with a diagonal drawing creates an inconsistency because it is an anomaly within the table. Unlike the other cells in the table, no data may be placed in the cell and it is uneditable.
Other implementations that attempt to get around this uneditability of a divided cell with a diagonal include creating a separate text object that floats above the diagonal cell on the display. However, in this implementation, the text object is distinct from the table structure providing unwanted side effects. For example, whenever the table cell is resized or the format of the cell is changed, a separate editing step is required to modify the “floated” text object so that it conforms with the rest of the table.
And yet another implementation includes restricting the text to a fixed-pitch grid and drawing lines through the breaks in the letters. However, this also requires multiple editing steps when parameters of the cell are changed. In addition, this solution does not work when the font in the text is one of the commonly used proportional spaced fonts.
Accordingly, there is a need in the art to generate a divided cell, which provides editing on both sides of the division and minimizes the steps required when editing objects in the cell and manipulating the parameters of the cell.